package com.itheima.api.hashset.demo04;

import java.util.HashSet;
import java.util.Random;

public class HashSetDemo01 {

    /**
     * 需求：编写一个程序，获取10个1至20的随机数，要求随机数不能重复。 并把最终的随机数输出到控制台。
     *
     * 分析：
     *
     * 1. 我们需要10个随机数，那么既然是多个数据，我们就应该是一个容器进行存储，而容器有数组和集合； 我们选择集合
     * 2. 集合又有多个，我们选择哪一个。 元素不能重复，那么元素就是唯一的，而可以保证元素唯一的集合有： TreeSet ， HashSet
     * 3. 我们可以选择HashSet来存储元素
     * 4. 要产生多个随机数，我们就需要使用循环，那么循环多少次呢？次数不好确定，但是我们可以知道当集合的长度 >= 10的时候循环需要结束
     * 那么也就是说当集合的长度 < 10的时候，需要生成随机数
     *
     */
    public static void main(String[] args) {

        // 1. 创建一个HashSet集合对象，集合对象中所存储的元素是Integer类型的数据
        HashSet<Integer> hashSet = new HashSet<Integer>();

        // 2. 循环生成随机数
        while(hashSet.size() < 10) {

            // 生成随机数
            Random random = new Random() ;
            int numnber = random.nextInt(20) + 1 ;

            // 把随机数添加到集合中
            hashSet.add(numnber) ;

        }

        // 3. 对集合进行遍历操作
        hashSet.forEach( s -> System.out.println(s) );

    }

}
